package net.feixiang.creational.prototype;

/**
 * 原型模式演示类
 * <p>
 * 该类演示了如何使用原型模式来复制简历对象。通过克隆原始简历对象，可以创建一个新的简历对象，并修改其属性。
 * </p>
 *
 * @author 飞翔
 * @see <a href="https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%80%E7%AB%A0%E3%80%81%E5%88%9B%E5%BB%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/15.html">原型模式</a>
 */
public class PrototypeDemo {
    public static void main(String[] args) {
        // 创建原始简历对象
        WorkExperience workExperience = new WorkExperience("飞翔软件公司", 3);
        Resume originalResume = new Resume("飞翔", "男", 28, workExperience);

        System.out.println("原始简历：" + originalResume);

        // 复制简历对象，这里是直接使用已存在的对象，而不是新建对象
        Resume clonedResume = originalResume.clone();
        clonedResume.setName("翱翔");
        clonedResume.getWorkExperience().setCompany("翱翔设计公司");

        System.out.println("复制简历：" + clonedResume);
    }
}